package com.ccys.db.mapper;

import com.ccys.db.dto.app.subscriptionActivationCodeScreen.DeleteDependantSubscriptionDto;
import com.ccys.db.dto.corporateAndInsurance.PlanBenefitMemberDto;
import com.ccys.db.dto.userManagement.TblMemberAiaCorporateDTO;
import com.ccys.db.dto.userManagement.TblPlanBenefitMemberDTO;
import com.ccys.db.entity.TblPlanBenefitMember;
import com.ccys.db.vo.consultation.BookingAppointmentMemberBenefitList;
import com.ccys.db.vo.corporateAndInsurance.PlanBenefitMemberVo;
import com.ccys.db.vo.userManagement.MemberPlanListWebVO;
import com.ccys.db.vo.userManagement.TblMemberAiaCorporateWebVO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

import java.util.List;
import java.util.Map;

/**
* Created by Mybatis Generator on 2023/12/15
*/
public interface TblPlanBenefitMemberMapper extends Mapper<TblPlanBenefitMember>, MySqlMapper<TblPlanBenefitMember> {

    List<MemberPlanListWebVO> listObjectsCms(TblPlanBenefitMemberDTO dto);

    List<PlanBenefitMemberVo> getList(PlanBenefitMemberDto dto);

       /**
        * @description 根据国家和benifit 获取用户ID
        * @date     2023/12/27
        * @author   cloud fly
        */
    List<Map> getMemberIdsByCountryIdAndPlanBenefitIds(@Param("countryIds") String countryIds, @Param("planBenefitIds") String planBenefitIds);

       /**
        * @description 根据病人和科室标识 查询benifit
        * @date     2023/12/29
        * @author   cloud fly
        */
    List<BookingAppointmentMemberBenefitList> listBookingAppointmentMemberBenefit(@Param("memId") String memId, @Param("specialisationId") String specialisationId);

    /**
     * 软删除
     * @param dto
     */
    void deleteDependantSubscription(DeleteDependantSubscriptionDto dto);

    /**
     * 软删除用户的福利
     * @param memberId 用户id - 用户id实际上可以去除，指定到了某个数据id就没必要传了
     * @param id 数据id
     */
    void deleteConsultProfile(@Param("memberId") String memberId,@Param("id") String id);

    List<TblMemberAiaCorporateWebVO> listObjectsCmsAia(TblMemberAiaCorporateDTO dto);
}